package cn.edu.seig.springks.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 配置跨域访问的类
 * 跨域资源共享（CORS）配置是现代Web服务中常见需求，特别是在单页应用（SPA）与后端服务交互时
 * 该配置允许特定来源的请求访问受浏览器同源策略保护的资源
 */
@Configuration
public class CorsConfig implements WebMvcConfigurer {
    /**
     * 添加跨域映射配置
     * 该方法配置了全局的跨域访问规则，允许来自特定源的请求，并指定了允许的HTTP方法和请求头
     * 此外，还配置了是否允许携带用户凭证的请求
     *
     * @param registry 跨域请求的注册表，用于添加跨域映射规则
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("http://localhost:8080")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .allowCredentials(true);
    }
}
